#include"myshell.h"
#define SIZE 1024

int main(int argc , char* argv[] , char* env[])
{
    char commandstr[SIZE];
   while(1)
   {  
       //0、每次在使用全局的命令列表的时候需要初始化
       InitGlobal();
        //1、输出命令行提示符
        PrintCommandPrompt();
        //2、获取用户输入的命令
        if(!GetCommandString(commandstr ,SIZE))
            continue;
        //测试看是否真的拿到用户的输入信息
        //printf("echo %s\n" , commandstr);

        //在解析命令之前检查字符串中是否带有重定向符号
        CheckCommand(commandstr);

        //3、对命令字符串进行解析。并放到全局的数组中
        ParseCommandString(commandstr);
        //内建命令需要父进程自己执行，所以在解析之后需要判断这个命令是否时内建命令
        if(BuiltInCommandExec())
        {
            //父进程自己执行了就不执行后面的逻辑
            continue;
        }
        //执行命令
        ForkAndExec();
   }


    //for(int i = 0;env[i];i++)
    //{
    //    printf("env[%d]:%s\n",i,env[i]);
    //}
    return 0;
}
